package com.hzz.dto.river;

import java.math.BigDecimal;
import java.util.Date;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("河道名录 DTO")
public class RiverInfoDto extends BaseDto {
    /** id */
    Long id;
    /** 上级河道ID */
	@ApiModelProperty("上级河道ID")
    Long parentId;
    /** 河道编号 */
	@ApiModelProperty("河道编号")
	@NotNull(message="code不能为空")@Size(max=55,message="code最大55字符")
    String code;
    /** 河道名称 */
	@ApiModelProperty("河道名称")
	@NotNull(message="name不能为空")@Size(max=55,message="name最大55字符")
    String name;
    /** 河长ID, 多个之间用逗号分隔 */
	@ApiModelProperty("河长ID, 多个之间用逗号分隔")
	@NotNull(message="principalId不能为空")@Size(max=256,message="principalId最大256字符")
    String principalId;
    /** 河长姓名, 多个之间用逗号分隔 */
	@ApiModelProperty("河长姓名, 多个之间用逗号分隔")
	@NotNull(message = "principalName不能为空")
	@Size(max = 256, message = "principalName最大256字符")
    String principalName;
    /** 水域类型(1河流；2水库) */
	@ApiModelProperty("上级河道ID")
	@NotNull(message="type不能为空")
    Integer type;
    /** 河流长度（km） */
	@ApiModelProperty("河流长度（km）")
	@NotNull(message="lengths不能为空")
    BigDecimal lengths;
    /** 河流宽度（m） */
	@ApiModelProperty("河流宽度（m）")
	@NotNull(message="width不能为空")
    BigDecimal width;
    /** 河流起点 */
	@ApiModelProperty("河流起点")
	@NotNull(message="startAddr不能为空")@Size(max=128,message="startAddr最大128字符")
    String startAddr;
    /** 河流终点 */
	@ApiModelProperty("上级河道ID")
	@NotNull(message="endAddr不能为空")@Size(max=128,message="endAddr最大128字符")
    String endAddr;
	// /** 河流起点经度 */
	// @Size(max=32,message="startLongitude最大32字符")
	// String startLongitude;
	// /** 河流起点纬度 */
	// @ApiModelProperty("上级河道ID")
	// @Size(max=32,message="startLatitude最大32字符")
	// String startLatitude;
	// /** 河流终点经度 */
	// @Size(max=32,message="endLongitude最大32字符")
	// String endLongitude;
	// /** 河流终点纬度 */
	// @Size(max=32,message="endLatitude最大32字符")
	// String endLatitude;
    /** 水域面积（万方） */
	@ApiModelProperty("水域面积（万方）")
	@NotNull(message="acreage不能为空")
    BigDecimal acreage;
    /** 河流等级 */
	@ApiModelProperty("河流等级")
	@Size(max = 55, message = "level最大55字符")
	String level;
    /** 行政区域ID,多个之间用逗号分隔 */
	@ApiModelProperty("行政区域ID,多个之间用逗号分隔")
	@Size(max=128,message="areaIds最大128字符")
    String areaIds;
    /** 行政区域名称，多个之间用逗号分隔 */
	@ApiModelProperty("行政区域名称，多个之间用逗号分隔")
	@Size(max=128,message="areaNames最大128字符")
    String areaNames;
	/**
	 * 最后一级行政区域ID
	 */
	Long currAreaId;
	/** 图片路径 */
	@ApiModelProperty("图片路径")
	@Size(max = 128, message = "imgPath最大128字符")
	String imgPath;
	/** 图片名称 */
	@ApiModelProperty("图片名称")
	@Size(max = 128, message = "imgName最大128字符")
	String imgName;
    /** 备注 */
	@Size(max=255,message="memo最大255字符")
    String memo;
    /** 删除标记 */
    Integer delFlag;
    /** 建立者id */
    Long createId;
    /** 更新时间 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;
    /** 创建时间 */
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
	/**
	 * 取上级或下级河段标记(1上级，2下级)
	 */
	Integer levelFlag;
	/**
	 * 所在流域名称
	 */
	String hnnm;
	/**
	 * 上级系统-行政区划
	 */
	String pac;

	String pAreaIds;
}
